﻿#define _CRT_SECURE_NO_WARNINGS 1
//#include "Queue.h"
//
//void Queuetest()
//{
//	Queue q;
//	QInit(&q);
//	QPush(&q,3);
//	QPush(&q,2);
//	QPush(&q,1);
//	printf("%d\n", QueueFront(&q));
//	printf("%d", QueueBack(&q));
//	QDstroy(&q);
//}
//
//int main()
//{
//	Queuetest();
//	return 0;
//}

int Add(int x, int y ,int z = 10)
{
	return x + y + z;
}

//#include<iostream>
//using namespace std;
//int main()
//{
//	//cout << Add(1,11);
//	int b = 1;
//	int x = 2;
//	int& a = x;
//	cout << a << endl;
//	a = b;
//	cout << x;
//	return 0;
//}

//#include <iostream>
//
//void swap(int& x,int& y)
//{
//	int m = x;
//	x = y;
//	y = m;
//}
//
//void swap(double& x, double& y)
//{
//	double ret = x;
//	x = y;
//	y = ret;
//}
//
//
//using namespace std;
//int main()
//{
//	int a = 12;
//	int b = 31;
//	cout << a << ' ' << b << endl;
//	swap(a,b);
//	cout << a  << ' ' << b << endl;
//	double p = 3.14;
//	double q = 21.31;
//	cout << p << ' ' << q << endl;
//	swap(p, q);
//	cout << p << ' ' << q;
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int arr[2][3] = { 1,2,3,4,5,6 };
//	for (int i = 0; i < 2; i++)
//	{ 
//		for (int j = 0; j < 3; j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{

	//int arr1[3][4];
	//double arr2[2][5];

	//int arr3[3][5] = { 1,2 };
	//int arr4[3][5] = { 0 };

	//char arr5[2][4] = {2};
	//printf("%d\n", arr5[0][3]);
	//printf("%d", arr5[0][1]);

	//int arr3[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };

	//int arr4[3][5] = { {1,2},{3,4},{5,6} };
	//{1，2}，{3，4}，{5，6}位于不同行

	//int arr5[][5] = { 1,2,3 };
	//int arr6[][5] = { 1,2,3,4,5,6,7 };
	//int arr7[][5] = { {1,2}, {3,4}, {5,6} };

	//int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };

//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	//int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };
//	//printf("%d\n", arr[1][3]);
//
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
	//int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };
	//for (int i = 0; i < 3; i++)
	//{
	//	for (int j = 0; j < 5; j++)
	//	{
	//		printf("%d ", arr[i][j]);
	//	}
	//	printf("\n");
	//}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int arr[3][5] = { 1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7 };
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 5; j++)
//		{
//			scanf("%d", &arr[i][j]); 
//		}
//	}
//	printf("\n");
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 5; j++)
//		{
//			printf("%d ", arr[i][j]);
//		}
//		printf("\n");
//	}
//	return 0;
//}

//⼆分查找 给定要查找的数字，若找到就打印出对应下标。
#include <stdio.h>
int main()
{
	int arr[] = { 1,2,31,74,17,41,85,4,5,6,7,8,9,12,10 };
	int left = 0;
	int right = sizeof(arr) / sizeof(arr[0])-1;
	int x = 6; //要查找的数字
	int mid = 0;
	int find = 0; //是否找到的标志
	while (left < right)
	{
		mid = (left + right) / 2;
		if (arr[mid] > x)
		{
			right = mid-1;
		}
		else if (arr[mid] < x)
		{
		 left = mid+1;
		}
		else
		{
			find = 1;
			break;
		}
	}
	if (0 == find)
	{
		printf("没找到\n");
	}
	if (1 == find)
	{
		printf("找到了，下标是:%d\n", mid);
	}
	return 0;
}
